From 2b0aab1103f1b35a3373b54024b504cedec6a21b Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Thu, 29 Sep 2005 18:28:28 +0100 Subject: [PATCH] More save/restore code in interrupts-enabled contest, where it properly belongs. Signed-off-by: Keir Fraser --- linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c | 1 + linux-2.6-xen-sparse/arch/xen/kernel/reboot.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c b/linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c index 058fd3797c..d75dcd67a9 100644 --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/process.c @@ -129,6 +129,7 @@ static inline void play_dead(void) * race between pending interrupts and restoration of handler. */ #ifdef CONFIG_SMP + local_irq_enable(); /* XXX Needed for smp_resume(). Clean me up. */ smp_resume(); #endif cpu_set(smp_processor_id(), cpu_online_map); diff --git a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c index bc596fbe09..5a093f6795 100644 --- a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c +++ b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c @@ -187,10 +187,6 @@ static int __do_suspend(void *ignore) irq_resume(); - xencons_resume(); - - xenbus_resume(); - time_resume(); #ifdef CONFIG_SMP @@ -200,6 +196,10 @@ static int __do_suspend(void *ignore) __sti(); + xencons_resume(); + + xenbus_resume(); + #ifdef CONFIG_SMP out_reenable_cpus: for_each_cpu_mask(i, prev_online_cpus) { -- 2.30.2